using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace DS.SludgeEngine.Base
{
    public interface IActor
    {
        Vector3 Position { get; set;}
        Vector3 AdjustedPosition { get; }
        bool IsDragged { get; set;}
        bool IsSelected { get; set;}
        int CurrentHealth {get; set;}
        bool IsMouseOver { get; set;}
        BoundingSphere Sphere { get; set;}

        void Draw(bool reflecting, GraphicsDevice device, ICameraComponent camera, ITerrainComponent terrain, IDrawing2DManager drawing);
        bool Update(GameTime gameTime, GraphicsDevice device, ICameraComponent camera, ITerrainComponent terrain, IDrawing2DManager drawing, IProjectileController projectileController);
        void SetDestination(Vector3 position);
        void SetAttack(IActor highlightedActor);
        void Hit(float damage);
        void Translate(Vector3 distance);
        Quaternion ForwardView
        {
            get;
        }
        Quaternion Rotation
        {
            get;
            set;
        }
        void Rotate(float xRotation, float yRotation, float zRotation);
        
    }
}
